#ifndef CUBOID_PRIMITIVE_H
#define CUBOID_PRIMITIVE_H

#include "object.h"

class CuboidPrimitive : public Object{
    public:
        CuboidPrimitive(int = 0);
        CuboidPrimitive(const Vector3D &, const Vector3D &, int = 0);
        CuboidPrimitive(const Vector3D &, const Vector3D &, const Color &, int = 0);
        ~CuboidPrimitive();

        void setAllPoints(const Vector3D &, const Vector3D &);
        Vector3D getPoint(unsigned int) const;

        double volume() const;
        double area() const;

        void draw(bool, bool = false, const Color & = Color(0.0, 0.0,0.0,0.0)) const;
        int classify(Vector3D *) const; //manda os 8 pontos da octree
        void getMinMax(double *, double *, unsigned int) const;

    private:
        void createPoints();
        Vector3D *point;
};

#endif


